home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Cream of the Crop 1
/
Cream of the Crop 1.iso
/
EDUCATE
/
CATTEST.ARJ
/
CAT.DOC
next >
Wrap
Text File
|
1991-05-23
|
50KB
|
1,357 lines
CAT(TS):COMPUTER ASSISTED TESTING (IN TECHNICAL SUBJECTS)
May 23rd, 1991
Carl W. David
Department of Chemistry
University of Connecticut
Storrs, Connecticut 06269-3060
TABLE OF CONTENTS
_________________
INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . 1
A Polemic . . . . . . . . . . . . . . . . . . . . . . . 1
What are we going to do? Improve testing! . . . . . . . 3
Caveats . . . . . . . . . . . . . . . . . . . . . . . . 4
Why should I read this manuscript? . . . . . . . . . . 6
Acknowledgements . . . . . . . . . . . . . . . . . . . 7
IMPLEMENTATION . . . . . . . . . . . . . . . . . . . . . 7
PROCTORn . . . . . . . . . . . . . . . . . . . . . . . . 8
Purpose:To administer a computer assisted examination. 8
Implementation . . . . . . . . . . . . . . . . . . . . 8
Function. . . . . . . . . . . . . . . . . . . . . . . . 9
Philosophy of Browsing . . . . . . . . . . . . . . . 11
The Rest of this Book . . . . . . . . . . . . . . . . 11
UTILITIES . . . . . . . . . . . . . . . . . . . . . . . 12
UtilTest . . . . . . . . . . . . . . . . . . . . . . 13
Routines found in UTILITY.PAS and their use. . . . . 14
EVALUATING EXPRESSIONS . . . . . . . . . . . . . . . . 16
EVALTEST . . . . . . . . . . . . . . . . . . . . . . 18
EXAMPLES . . . . . . . . . . . . . . . . . . . . . . . 19
A First Test Question . . . . . . . . . . . . . . . . 19
A simple Calculus Question . . . . . . . . . . . . . 19
An Advanced Thermodynamics Question . . . . . . . . . 19
COMPUTER ASSISTED TESTING
in technical subjects
INTRODUCTION
____________
A POLEMIC
_________
"The objective is to dramatically improve our schools
by the year 2000. There is no higher priority for
business than this. Without an educated populace we
cannot have a strong economy."
David T. Kearns, Chairman, Xerox Corp.
Business Tokyo, March 1990, page 57
"across the political spectrum, officials and business
leaders worry about American schoolchildren lagging
behind Asian schoolchildren, about electronic markets
ceded to the Japanese, about a self-indulgent corpo-
rate culture that has thrived on short-term profits,
about an American political system that has grown cyn-
ical, slashing, and corrupt....
In education, the President promises that American
Students will be the best in the world at math and
science by the turn of the century. And the Nation
Governors' Association, meeting in Washington last
week echoed the goal. But some educators merely shake
their heads, arguing that that is unlikely. Even as
the the President praised the governors' interest in
education, Congressional Democrats criticized the
"tepid" 2% education spending increase proposed by the
Administration which holds that increased outlays are
not necessarily the key to education improvement."
Maureen Dowd, New York Times, May 4, 1990, Section 4,
page 1
THE PROBLEM
Is there anyone left in this country who doubts that
there is a problem in mathematics and science education?
Parents, educators, business leaders, intellectuals, and
even politicians all bemoan the failings of the education
system which is going to leave us bereft of native born sci-
entists, and dependent on the generosity of other nations'
expatriates for our future survival.
1
"This year I am teaching math, and I can see why there
is little physics in the inner-city schools. The stu-
dents cannot do the mathematics"
S. W. Brekke, Letter, Physics Today, Aug. 1986, pg
74.
"A test of 47,000 College Freshman prompts call for
continuance of remedial program. A third or more of
the students entering New Jersey colleges have not ac-
quired the verbal and mathematical skills they need to
do college-level work, ..."
New York Times, Nov. 23, 1979, pg 21.
"Report after report has shown that American students
are straggling near the tail end of all international
math and science competitions. What should be done?"
F. Hechinger, The New York Times, March 1, 1989, pg.
B7.
A SOLUTION?
Having spent a lifetime in education, as a professor of
chemistry on the one hand, and as a member of my local
school board on the other, it has become apparent to me that
reforming the educational system in situ is impossible.
_______
Partly, this is because no teachers accept culpability
and/or responsibility for their work. Even I, when faced
with criticism that my students in freshman chemistry, when
passed and sent on to organic, can not do stoichiometry, do
not know what equilibrium means, can't tell an acid from a
base, etc., etc., etc., exclaim:"I taught it. They "passed"
the tests. What more is there?"
If I am not responsible for the failings of my efforts
once my students leave me (provided that I have not pandered
to the local authorities and passed fools and charlatans),
then I can not criticize teachers in the lower regions of
the establishment when they also fail to teach material
which I regard as necessary(1) .
After a lifetime of reflection on the problem, and watch-
ing the country fritter away a king's ransom for "research"
and other frivolities in the educational infrastructure, af-
ter seeing an enormous investment in computer hardware and
software without any discernible gains, it becomes apparent
that something is structurally wrong with the system, and
conventional methods of fixing the system just won't work.
----------------
1 Actually, this last sentence is, post hoc ergo propter
_____________________
hoc, false. If the students haven't learned, one has no
___
proof that the teachers haven't taught!
2
In fact, heresy, heresy, pouring money into the system won't
cure its ills.
The New York Times reports:
"U.S. PANEL FAULTS UNIFORM TESTING --- Fairness and
Accountability Are at Issue, Especially in Multiple
Choice Format. report urged changes in standardized
tests themselves and in the ways they are used, be-
cause current tests are often misleading or unfair and
because the nation's changing work force. report said
too many tests emphasizing'lower thinking skills' were
consuming too much classroom time and school money."
May 24, 1990, New York Times
If one agrees that multiple choice testing is harming the
total educational system, and if one feels that national
testing and accountability is important for nudging the sys-
tem into improvements, then it is clear that improving test-
ing is the sine qua non for consideration.
____________
In what direction then should we turn for testing? In
TECHNICAL testing, it is clear that we need to turn away
from multiple choice methods and toward truly objective
methods of assessment. We need to increase the pressure on
students to retain knowledge. We need to ignore the
following:
"New York State's Education Commissioner said today
that the state's public schools should adopt a far
broader measure than standardized tests in assessing
student performance."
Sam Howe VerHovek
New York Times, May 23, 1990.
The challenge is there. The gauntlet has been thrown.
"No more awards for predicting rain. Only for building
arks."
COMAC, Summer 1990, Solomon Garfunkel, page 2
as re-quoted from
Business Week, Spring 1990
WHAT ARE WE GOING TO DO? IMPROVE TESTING!
_________________________________________
After jousting with educators over what is and isn't
taught, what is and isn't learned, etc., etc., ad nauseam,
__________
one comes to the conclusion that no one knows what is being
truly learned. The tests which we employ locally are defec-
tive, and those used nationally are worse. Measuring what
is going on is the first step in correcting what is uni-
versally perceived as a major problem in America.
To improve testing we need to:
3
1. eliminate multiple choice testing, which warps the way
test takers think,
2. require that students maintain the earlier learned
skills needed at the current level (precursor material),
3. eliminate or curtail partial credit on poorly worked
problems,
4. demand that the word "mastery" be meaningful, i.e., that
students command that part of the material which is cen-
tral to continuing on.
In this book I present the codes and programs required to
implement Computer Assisted Testing, in which students are:
1. held responsible for earlier, precursor material,
2. held to a performance level which clearly demonstrates
mastery of material without recourse to partial credit,
3. and results in grades which are meaningful.
Computer Assisted Testing allows the teacher to construct
examinations which are graded in real time by computer.
When a student makes a mistake, the teacher can have previ-
ously decided to offer help on this question, and this help
can be offered uniformly and fairly (even handed) to all
students who make a similar error. This help, programmed
into the computer, is available in a fairer manner than the
help obtained when the teacher approaches the desk of a stu-
dent with a problem during an examination, and the student
artfully wheedles some hint from the teacher. Alterna-
tively, the teacher could have decided not to offer help
other than the information that the student has made an er-
ror. Even this information can be helpful to a student.
If a student truly can't do the work (can't complete the
problem), then at some point the student will have to give
up. There can be no self deception, no fooling oneself when
it comes to passing or not passing Computer Assisted Tests.
If you finish, you demonstrated that you knew the material.
If you don't finish, you know that something is wrong!
___
CAVEATS
_______
My intention is to give you, the reader, the tools for
creating Computer Assisted Tests in an MS-DOS environment.
These tools consist of programs which themselves will gener-
ate programs. The tests we are creating ARE programs which
run under MS-DOS (the operating system).
It is important to understand that the customization of
tests, both the questions themselves, and the help schemata
employed, depend on the teacher (you) deciding upon various
things such as levels of help, phraseology of questions and
4
help statements, etc., etc., etc.. Therefore, as you adopt
Computer Assisted Testing, you will also be adopting a
method of working which involves creating not only tests,
but programs WHICH ARE tests! The investment made by you in
creating each test question will be partially repaid by be-
ing able to virtually clone that question into many other
similar questions with minimal effort. Further, preserving
the questions on disk in a library will allow you at some
future date to create similar tests easily by assembling
pre-tested questions into packages as needed. Also, the
test questions, once obsolete for some reason, can be re-
leased to your students for use as study material. All this
will be explained later.
There is one over-riding decision which I am making for
you, which you should accept now (or put this book down).
That is, I have chosen to work in Turbo Pascal (from
Borland). There are lots of other choices, but this one
provides tons of tools for program development, lots of
knowledgeable consultants, and is very, very inexpensive in
keeping with Borland's philosophy.
If you choose to use the system of examinations that I am
providing, then you need not learn Turbo Pascal, and you
need not ever be involved in changing the format of test
questions. HOWEVER, the chances are that you will not be
happy with the choices that I have made in terms of how to
structure questions, help, etc.. THEREFORE you will have to
be willing to take my questions and change them, i.e., re-
program them. This will entail learning Turbo Pascal! In
any event, you will need to purchase Turbo Pascal version
6.0. You will not need to learn TP6.0 unless you want to
perform surgery on questions once you have created them us-
ing the procedures included here, i.e., you find that your
taste and mine differ(vide infra). To summarize, you must
__________
purchase Turbo Pascal Version 6.0! You need not learn it
unless you choose, but you must make the program TPC.EXE
available to the Computer Assisted Testing programs which
you will use to create test questions and examinations.
Further good advice is to use a computer with a hard
disk. We are going to be creating programs which must be
compiled before they are in a form useful for students. Al-
though all of this will be set up to run fairly automat-
ically, the fact is that once you get started, you will
rapidly generate an enormous number of files of test
questions. If you attempt to keep these on floppy disks,
you will be in big trouble. Therefore, I recommend that at
least for you personally, for development purposes, have a
PC with a hard disk (the bigger the better). That is not to
say that you shouldn't back up your test question files to
floppy disk. You should, religiously! But going to a
floppy based archive for a question is not pleasant, while
having thousands of questions at hand, possibly divided into
5
directories according to subject or sequence number, or
something, will be very, very handy.
On the other hand, please do not ask your school to equip
the examination PC's with hard disks. They should be plain
vanilla items, with one and only one floppy disk drive and
________________
640K of core (i.e., bare bones)! Do not get sophisticated
here and network them! Whether we like it or not, some stu-
dents will try and steal questions, and it is important to
make it as hard as possible to accomplish this task, vide
____
infra.
_____
WHY SHOULD I READ THIS MANUSCRIPT?
__________________________________
It is true that the diskette contained with this manu-
script has on it a program which will allow you, by means of
filling in blanks and choosing from menus, to create tests
which are "ready to go". In essence, you can treat the en-
tire business as a black box in which you pay no attention
what so ever to the details, and create tests immediately.
But this would deprive you of several important advan-
tages. First, there are times when you teach certain spe-
cific methods for solving problems, in which the student,
generally, follows your method and arrives at an answer.
For such highly structured methods, there is no general
method of testing, and you will be required to come up with
a PASCAL scheme which carries the student through the vari-
ous steps one at a time IF YOU CHOOSE TO GIVE THE STUDENT
GUIDED HELP IN THIS STRUCTURED METHOD. That is, if the stu-
dent, using pencil and paper, does not come up with the cor-
rect answer, and you, in writing the test decide to offer
help, then you can give STRUCTURED help if you can program
it yourself in PASCAL, but are stuck with unstructured help
if you can not program it yourself in PASCAL. Therefore,
reading the book, and understanding the various PROCEDURES
and FUNCTIONS which are given to you (put at your disposal),
will open a wider universe of testing possibilities for you.
Secondly, and of lesser importance, once a test has been
created, it is useful to be able to clone that test without
going through all the menus and such which the test genera-
tor program will force upon you. Therefore, for cloning
purposes, knowing some PASCAL, some editing, etc., is worth-
while.
Finally, as with any tool, understanding its inner
workings makes you more comfortable in using it, especially
when something unexpected happens. Since no programs are
perfect, you can expect glitches and bugs to appear; being
knowledgeable will help you in stamping them out.
6
ACKNOWLEDGEMENTS
________________
All the code that is going to be shown and discussed in
this book and included on the distribution diskette(s) is
either original coding (by me) or public domain coding re-
leased to the general public. I will specifically acknowl-
edge the authorship of coding when I know it, so that these
persons can feel some pride of authorship. This code "bor-
rowed" from others has been (often) substantially altered by
me.
The central algorithm for evaluating expressions was sig-
nificantly enhanced by my wife, Elaine David, who discovered
that using bakwards paired brackets could help one locate
appropriate places for the multiplication sign (*), i.e., we
find juxtapositions of items without an intervening opera-
tor, place a )( pair between the items, and expand )( to )*(
vide infra.
I also wish to acknowledge the support of Professor
Maryanski, Associate Vice President of the University of
Connecticut, who supported this work with a starter grant
which enabled me to purchase the PC upon which all this work
was done. Finally, I wish to note that not one federal
funding agency was willing to support this work, that every
referee that read my entreaties failed me, and that I have
been forced therefore to abandon this project.
IMPLEMENTATION
______________
What follows is a structured (logically, I hope) dis-
cussion of the Computer Assisted Scheme I have created.
The student, when handed a diskette, places that diskette
in the A: drive of an MS-DOS machine, and types in PROCTOR4
for a 4 question exam (the student has been told how many
questions, 2 thru 9, to expect).
7
PROCTORN
________
PURPOSE:TO ADMINISTER A COMPUTER ASSISTED EXAMINATION.
______________________________________________________
This main (driver) procedure performs the following
functions:
1. Initialization of variables
2. Read student diskette and determine if student is start-
ing or continuing an examination
3. Loop over remaining questions:
a. Read next question from diskette (overlay). It is
the responsibility of each question to perform the
following functions:
1) If this is a re-run of a question, read the save
file (*.SAV) otherwise, create the question and
create the save file (*.SAV).
2) Present question to student.
3) If desired, echo question to a disk file (*.$$$)
4) Accept student responses, judge them, act on
that judgement
5) If desired, echo all student responses to a disk
file.
b. At the end of each question, when the student has
"gotten it right", record that fact, along with
other pertinent data, such as whether or not the
student needed help and if so, whether or not the
student needs to solve a similar (cloned?) problem
4. If done with prescribed number of questions, exit from
PROCTOR else go back and continue to the next question.
IMPLEMENTATION
______________
In order to implement the above, I have written each
question as an OVERLAY, running under a master program
(PROCTOR), so that exiting from the overlay without aborting
means that the question has been answered or skipped (al-
though possibly after help has been given).
+-------------------+
| PROCTOR |
+----+--------------+
|
|
+---------+---------+---------+
| | | |
+-------+ +-------+ +-------+ +-------+
| Q1 | | Q2 | | Q3 | | Q4 |
+-------+ +-------+ +-------+ +-------+
8
The driving program presents unanswered questions in order.
At each return, the main program updates the grade book
(perhaps with information passed back from the overlaid
question), and then goes on to overlay the next question.
To leave the examination the student either completes all
the questions correctly (with or without help) or chooses to
leave the examination in the middle (choosing the F6 option
vide infra of quitting the examination). In either case,
provided no tampering has occurred, the diskette which the
student hands back to the monitor (or teacher) contains a
record of what has transpired, as well as re-start material
so that if the student needs to come back an complete a
question, the same numbers will be used in the second pres-
entation (even if they were chosen at random initially).
FUNCTION.
_________
We now expand on the various functions of PROCTOR as
noted above (features marked 'future' are to be
implemented):
1. Initialization
a. Set counters, assuming that this is a start of exam-
ination, not a continuation of a previous examina-
tion.
b. (future) Check that program has been loaded at
proper point, i.e., that no TSR has been loaded
which could allow student to interrupt the testing
procedure for improper reasons.
c. Obtain the students password(2)
----------------
2 Just as I am writing this (May, 1990), word comes that
several students were canvassing in our dormitories, of-
fering to take a Chemistry final examination for money.
Several were caught, but the important fact is that many
students remain, as ever, interested in the easy way
out. It pays us to implement guardian schemes to pro-
tect the honest student from the sleazy ones. To do
this, we UUENCODE the grade book on the student's disk
and then when the student starts work, we use the
PROCTOR program to UUDECODE the grade file that is in-
cluded on the diskette. Since UUENCODE and UUDECODE
Pascal source code in the public domain is available, it
is technically possible to incorporate this feature into
our schemes. Since the test questions themselves are in
compiled form vide infra nothing on the student disk is
__________
human readable, and the driver program can't be executed
9
d. Read (and decode) the existing grade file.
2. Is this a resumption? If this is a resumption, then
check which questions have already been done correctly,
and mark them in such a way that they are not presented
to the student.
3. Process the current question The depth of analysis of
errors, and the depth of error handling is a function of
the purpose of the examination. For pre-college stu-
dents, in which examinations are related closely to re-
mediation, the depth should be greater than for college
students. College students most likely should only be
aided slightly, with the intention of inducing them to
find their own errors. Thus, for college students, the
following sequence need not descend more than one level
----------------
without the password! (I realize how ineffectual the
scheme I have outlined is, and in a future implementa-
tion, I assume that a full password protection scheme
will be created.)
To create the initial grade file, use program
INITGRAD vide infra Thus the files on the diskette are
__________
printable but not understandable, and a password then
protects the contents of the disk from being de-crypted
by unauthorized persons. I suggest that the teacher use
a once only password scheme, and that the student get
her password when she surrenders her identification to
the test monitor. Once used, I suggest that the pass-
word be destroyed, so that the next time this student
gets a diskette with an examination on it, there is a
new password in place.
I accept that the overhead, the human wear and tear
of implementing this is unpleasant, but I feel it is
necessary and can be circumvented by persons who feel it
is unnecessary; just issue a blanket password, and use
it everywhere and every time (PASSWORD is a famous
choice for the universal password).
If UUENCODing is not sufficient, then a higher order
coding scheme will be required, but at the outset, we
use this simple scheme. Our assumption is that students
will be monitored so that no disks are removed from the
examination room (for leisurely inspection/hacking) and
that no one brings a disk in with a copy of either
UUDECODE or UUENCODE. Teachers are of course required
to maintain vigilance, since students will often leave
no stone unturned in order to pass a course.
One last note, students who remove diskettes from
their machines during a test, attempt some hacking, and
who then re-start their tests with purloined results
will generate PASCAL runtime errors!
10
into help schemes, while for lower level students, the
depth of help (and diagnosis) might be larger.
a. Clear the Screen, write the question to the top of
the screen, put up the standard menu (calculator,
answer, help, quit).
b. Accept the answer given by the student, compare to
the right answer. If student answer equals right
answer, update grade book, exit loop to next ques-
tion item. If student answer is wrong (and the stu-
dent asks for help), then check if it is in
repertoire of answers which instructor wishes to of-
fer aid for; if so, give the help, record that help
has been given. Return for student answer.
4. Update grade file, i.e., encrypt the current grade file,
UUENCODE it into printable form, and write it to disk.
5. If student needed help during this last question, deter-
mine from strategy whether to offer another, diminish
grade, etc. etc. etc..
6. Start up next question or, if at end of exam, halt proc-
essing.
PHILOSOPHY OF BROWSING
______________________
Should students be able to read all the questions on an
examination and choose the order in which they are going to
work? This question is central to the organization of the
driver program. It implies that if students have access to
a diskette and choose to quit the examination, their exam-
ination will have to be changed (possibly only by cloning)
so that when they return they are not at an advantage rela-
tive to those who stayed. Perhaps a grade penalty must be
exacted for any student who leaves and returns. We will of-
fer these options to teachers later in the process. For the
current system, browsing is not allowed. The current
PROCTOR program goes through the questions in order, once,
and then exits. Students who wish to can re-start the pro-
gram, whereupon they are offered a second chance to attempt
problems which have not yet been done. An alternative
scheme certainly can be invented.
THE REST OF THIS BOOK
_____________________
To process a single question, we require various utili-
ties for writing the question out, accepting answers, etc..
To start this book, we present our utilities with explana-
tions below. Once the utilities are out of the way, we will
present a set of questions, in ascending order of diffi-
culty. Then we will present the utility programs for creat-
11
ing test questions and tests (made up of those questions),
libraries, etc..
It is apparent, to me, that the level of equation proc-
essing that we can accomplish with the scheme I will outline
here is quite limited. Had I gotten external support for
programmer help, I would have reprogrammed the entire system
using graphics, so that I could employ a more sophisticated
equation processor, but alas, that is not to be.
The following code is placed in the public domain. You
may read it, copy it, modify it, spurn it. Any code which I
have taken from other public domain sources are noted as
such. You should be aware that there are commercial and
shareware products which could be used instead of ours,
which would be more efficient. However, in the spirit of
"giving it away", the code included here is free. Including
commercial units by experts will substantially improve your
examinations.
No claim for finality (closure or completeness) is made
here. The material included is the first step on a long
road which will never end.
One last disclaimer- no attempt at elegance or sophisti-
cation has been made in creating these codes. Rather, sim-
plicity, transparency of understanding, etc., have been
accentuated. Professional programmers scoffing at the code
should remember that speed is not of the essence here, and
that therefore, what counts is the ultimate user who may be
a beginning programmer. Some day, when the system is more
fully implemented, I assume that users will come on line who
are not programmers at all, and for whom this is all a
"black box". For those people, improvements in the sophis-
tication of the code makes sense, since they will never read
it anyway. But at the outset, where I am assuming that the
reader is either a Pascal programmer or is willing to learn
Pascal programming, there is no need to concern oneself with
anything other than clarity. To paraphrase Einstein: "...
matters of taste are left to the tailor ...".
UTILITIES
_________
For those unused to Turbo Pascal, and who are learning it
here simultaneously, we offer the utilities in a unit (which
we can modify later as we find other needs). The diskette
contains the code in a form ready for use with Turbo Pascal.
Therefore, you can compile this unit directly, setting the
destination to disk, creating a UTILITY.TPU file. The .TPU
file is going to be loaded each time the proctor program is
12
loaded, making the contents of this unit available to you
for use(3)
If you are reading this chapter, then you are either
knowledgeable in Turbo Pascal programming, or you are learn-
ing it. In either case, you should be aware that the fol-
lowing manuscript text is not definitive, since as bugs are
noted in utilities, I have gone in and corrected them. The
composition of this manuscript, on the other hand, is an on-
going process which may or may not reflect the latest
changes of the files. Therefore, when in doubt, check the
distribution disks to see the actual code.
For the novice, you should first learn elementary edit-
ing, using the WordStar like commands that Turbo Pascal
uses. I have included an editor of this type (freeware) for
your use in case you do not like using the Turbo Editor (it
takes some time to load, since it loads both compiler
(linker, etc.) and editor. Please feel free to edit back up
copies of programs included here, with the intent of improv-
ing them. I assume that you have Turbo Pascal 5.5 or 6.0.
UTILTEST
________
UTILTEST.PAS, is a utility test program which allows you to
check that the utilities are working properly before you
commit to using them. It is included on the distribution
diskette. When you compile and execute the program, it will
load the UTILITY.TPU file from the diskette (unless you used
TPUMOVER to move UTILITY.TPU into the TURBO.TPL file). You
should exercise the UTILITY.TPU unit extensively, until you
are satisfied that it will serve our purposes.
----------------
3 In fact, since it is going to be used so often, it makes
sense to include this in the TURBO.TPL file, which is
loaded each time the Turbo Pascal compiler is loaded.
To do this, compile UTILITY.PAS to disk, creating a file
UTILITY.TPU. Next, from the DOS prompt execute TPUMOVER
with the arguments TURBO.TPL and UTILITY.TPU, i.e. :
TPUMOVER TURBO.TPL UTILITY.TPU
whereupon you will enter the mover program which will
allow you to move UTILITY.TPU into TURBO.TPL. THe ad-
vantage of doing this is that UTILITY.TPU will then al-
ways be available to you no matter what. The
disadvantage is that you will decrease the size of other
programs you are creating, since UTILITY.TPU will always
be in memory.
13
ROUTINES FOUND IN UTILITY.PAS AND THEIR USE.
____________________________________________
Since the computer assisted testing system is evolving,
the printed documentation which you are currently reading
need not correspond exactly to the current contents of the
actual distribution diskettes. Within reason, every attempt
has been made to upgrade the documentation as changes are
made in the various units, but slight differences between
this documentation and the diskette's version should be ac-
cepted. The diskette takes preference over the documenta-
tion!
What follows is an English description of the included
utility routines:
1. Noise(WhatSounds:Sounds)
________________________
Noise is a program which will give various sounds ac-
cording to the kind of argument passed, i.e., Good, Bad,
FinishedGood, FinishedBad, Acknowledge, Cont. Each of
these sounds consists of a duration, frequency and repe-
tition pattern. They have no intrinsic meaning, and can
be altered easily.
2. Read_Key
________
Contrary to most of the other procedures in this
file, Read_Key is a function. This function serves two
purposes. First, it obtains characters, function keys
as well as normal characters, and second, it sets the
global variable Escape_Struck true or false depending on
whether or not the user has struck the ESCape key.
3. Our_Write(X,Y,s);
_________________
Our_Write is a procedure which takes over a line
starting at the point X,Y and writes a string (s). Af-
ter writing the string, Our_Write clears the rest of the
line!
4. YesNo(X,Y,s);
_____________
Function YesNo prints a prompt (s) at the pont (X,Y)
and then ways for a value in the set 'y','n','N','Y'.
Yes returns True, No returns false.
5. Pause(X,Y,s);
_____________
Pause prints a prompt (s) at the pont (X,Y) and then
waits for any keystroke from the keyboard.
6. CheckBrackets(Str,Err,Err_Message)
__________________________________
14
CheckBrackets counts the number of left and right
brackets in an algebraic expression and returns a mes-
sage about that count. If the expression is well
formed, the count should be zero and the procedure
should return an Err of zero and an Err_Message of
'O.K.'. Either can then be used for future reference.
7. Remove_Double_Blanks(Str)
_________________________
This procedure takes a string and shrinks it by re-
placing all multiple blanks with a single blank, suit-
able for printing.
8. Remove_all_blanks(Str);
_______________________
As implied by the name, this procedure changes a
string with blanks into one without any blanks by
squeezing the string. This is required so that there
will be no blanks in equations, even if the student
typed some in to improve readability. In case extra
blanks crept in to a string during substitutions, this
procedure will remove them!
9. Trim_fore_aft(Str);
___________________
This procedure removes leading and trailing blanks,
but leaves internal blanks alone.
10. PoseQuestion(Y,question);
_________________________
This procedure writes the text (question) out, start-
ing in column one of line Y. The line is broken at a
blank, no words are artificially split up.
11. Read_Equation(X,Y,
__________________
L{length},
__________
s{returned string},
___________________
char_set);
__________
This procedure reads an equation, accepting numbers,
algebraic symbols, the period, and all the chars in the
char_set, which allows for functions and the current
variable.
12. Read_Float_Masked(X,Y,L
_______________________
{number of places to right of decimal
_____________________________________
point},
_______
Prompt (text of prompt message),
________________________________
Print_Prompt {show old value?
______________________________
(Boolean)},
___________
W {resultant value/or original one,
____________________________________
real})
______
15
This procedure prompts at (X,Y) for an answer of the
form +x.yyyE+zz where L is the number of y's in the
x.yyy form, i.e., 3 here. If Print_Prompt is true, the
old value of W is printed inside the prompt, otherwise
it is not show.
13. Read_Fixed_Masked(X,Y,
______________________
Left,LRight {number of places to left
_____________________________________
& right of decimal point},
__________________________
Prompt {text of prompt message},
________________________________
Print_Prompt {show old value?
______________________________
(Boolean)},
___________
W {resultant value/or original one,
____________________________________
real})
______
This procedure prompts at (X,Y) for an answer of the
form +xxx.yy where Left is the number of x's in the
xxx.yy in the form, i.e., 3 here, and LRight is the num-
ber of y's. If Print_Prompt is true, the old value of W
is printed inside the prompt, otherwise it is not show.
14. Read_Integer_Masked(X,Y,
________________________
L, {number of digits},
______________________
Prompt {text of prompt message},
________________________________
Print_Prompt {show old value?
______________________________
(Boolean)},
___________
IW {resultant value/or original one,
_____________________________________
integer})
_________
This procedure prompts at (X,Y) for an answer of the
form +yyy where L is the number of y's in the yyy form,
i.e., 3 here. If Print_Prompt is true, the old value of
IW is printed inside the prompt, otherwise it is not
show.
EVALUATING EXPRESSIONS
______________________
The single most important difference between Computer As-
sisted Testing and all other kinds of testing (not including
oral examinations) is that Computer Assisted Testing can be
used to ascertain whether or not a students formula is cor-
rect. Thus, when a student gets a wrong numerical answer,
the computer can ask for the formula (or expression) used to
obtain this (incorrect) answer and ascertain whether or not
the expression itself was correct (relative to the known
right answer). Where in hand grading you might not see the
equation (tired, bored, angry (?)), the computer tirelessly
handles each students responses equitably and uniformly.
So, our problem is, how do we get the computer to understand
formulas?
16
Assume that the student gives an answer 'x+4' and the
computer is looking for the formula which you wrote as
'4+x'. Clearly, if we subsitute THE SAME random number into
each of these expressions we will get the same answer!
Assume that we have an expression
4-1.01x
and the student enters
-1.01x+4
Assume that the random number generator creates for its next
returned value the number 0.01234.
-1.01*0.01234 + 4 = 4 - 1.01*0.01234
so you can see that substituting the random number into the
"correct" and the "student" equations results in a numerical
equality. We are sure that the two forms are equal. If we
doubt it, do the process again with a different random num-
ber. Since the equations are both linear, it is impossible
that the equality could hold at two different values of 'x',
and therefore we are assured that the forms are equivalent.
We will also get the same answer if the student is play-
ing games and entered '2+2+x', and '(x+2)+2', etc., etc.,
etc.. In other words, no matter what the student offers
(lexicographically), we can cope provided that the students
response evaluates to the 'correct' value.
If the student offered '4.1+x', then provided we set our
tolerance level for numerical equality low enough, we can
distinguish between this response and the desired one. We
will use a statement:
IF ABS(student_value - our_value) <= tolerance THEN
___________________________________________________
as our central scheme for deciding whether or not the stu-
dents answer is correct, i.e., agrees with what we expect.
So, summarizing, we see that to tell if two expressions
are the same:
1. make sure that both equations have the variable present
2. substitute a random number into each expression and pass
the resultant purely numeric expressions to Evaluate.
They should return the same value, but to be sure that
there is no possibility that slight numerical errors,
such as having a different number of significant fig-
ures, we use the following:
ABS(student value - known value) <= tolerance
_____________________________________________
to make sure that the two are identical.
We will also use this scheme to find out what the student
did wrong, since we will include in our help sections
equations for common errors which can be compared to student
responses, with the idea that if we can ascertain the nature
of their error from a table of common errors, then we can
CHOOSE OR NOT to offer them some help.
17
To begin, we need to be able to evaluate numerically
based algebraic expressions (without variables). EVAL3.PAS
is the latest version of the parsing scheme. This material
is adapted from the Borland code which was included in vari-
ous earlier versions of Turbo Pascal.
EVALTEST
________
On the distribution diskette is a program called
EVALTEST.PAS which checks that the EVAL3.TPU module works.
This program allows you to input calculator like expressions
such as
1. 1 + 2
2. 2*3+4
3. 2*(3+4)
4. 2*(3+4)/2.1
with the evaluated value spit back. After reading the
EVAL3.PAS code, you will see that several functions, e.g.,
cosine, log, etc., are also useable in EVAL3.
The second part of EVALTEST checks for expressions. This
uses CHECKANS (vide infra) to check that two single variable
expressions are equal. Try entering:
1. 3x
2. 2x+x
to see whether or not these two expressions are equal.
EVALTEST will evaluate numerical expressions until the first
question mark ("?") is entered, and then it will evaluate
single variable expressions until a second question mark is
entered at the correct prompt.
This is (adjusted) copyrighted code, owned by Borland and
declared in the public domain for non-profit use.
For simple numeric input problems, we are done. EVAL3
can be used directly to evaluate expressions such as
"3*4+2.1". If our tests only involved numerical answers,
this would be the end of it. In fact, MQ03, the
MAKEQUEStion program included on the distribution diskette
assumes that this is the most that you are going to do,
e.g., employ questions with solely numeric answers.
18
EXAMPLES
________
The examples indicated below are creations of the MQ pro-
gram. The .IN1 files can be found on the distribution
diskette.
A FIRST TEST QUESTION
_____________________
INITQUES.IN1 is the output of the MAKEQUES program, and
creates a simple algebra problem. You will see that it in-
volves the simultaneous purchase of two kinds of nuts (how a
propos). This file is included by the Turbo Pascal compiler
when you are compiling PROTOTYP.PAS, since that program con-
tains a statement '{$I INITQUES.IN1}'.
A SIMPLE CALCULUS QUESTION
__________________________
Here is a simple calculus question, INTEG1.IN1. There
are several other INTEGn.IN1 files included in the distrib-
ution.
AN ADVANCED THERMODYNAMICS QUESTION
___________________________________
This last example is a theoretical flame temperature
problem.
19